# 事件使用bind绑定，或用bind_class()方法来绑定
# bind_all()将所有组件事件绑定到响应函数是上面
'''
<Button-1> 1鼠标左键按下 2鼠标中键 <Button-3>鼠标右键
<ButtonPress-1> 鼠标左键按下
<ButtonRelease-1> 左键释放
<B1-Motion> 按住左键移动
<Double-Button-1> 双击右键
<Enter> 进入某一组建区域
<Leave> 离开某一组建区域
<MouseWheel> 鼠标滚轮动作
键盘事件
<KeyPress-A> 按下键盘A（B,C...）键
<Alt-Key-A> alt+A

响应事件
def func(event):
    <语句>
event对象具有的属性如下：
    （1）widget 事件发生的部件（也就是地点）
    （2）x, y 事件的位置（相对于控件来说的相对坐标）
    （3）x_root, y_root 事件的位置(相对于屏幕的左上角的坐标绝对坐标)
    （4）keysym 按键事件的值（如按下f则这个事件的keysym就是f）
    （5）keycode 事件对象的数字码（如按下f的数字码是70，注意大写的F的数字码也是70，从这里可以使用keycode对大小写的F进行监听）
    （6）type 事件的一个类型(例如：键盘为2，鼠标点击为4，鼠标移动为6)
    （7）char 按钮事件的一个字符代码（例如f键盘为’f‘）
    （8）num 鼠标点击的事件数字码（左鼠标点击为1，中间鼠标为2，右边是鼠标为3）
    （9）width, height (新的部件的大小，在下面的例子中可能你看到的打印是??，因为没有新的部件的产生)
'''
import tkinter


def onFormEvent(event):
    for key in dir(event):
        if not key.startswith('_'):
            print('%s=%s' % (key, getattr(event, key)))


root = tkinter.Tk()
lblText = tkinter.Label(root, text='Form event tester')
lblText.pack()
root.bind('<Configure>', onFormEvent)
root.mainloop()
